// 用户管理模块的接口

// 引入封装的请求函数
import request from "@/utils/request";
//引入返回的数据类型 
import type { User, UserResponseData, AllRoleResponseData, SetRoleData } from "./type";
// 枚举地址
enum API {
    // 获取全部已有用户账号信息
    GETALLUSER_UEL = '/admin/acl/user/',
    //新增用户的账号
    ADDUSER_URL = '/admin/acl/user/save',
    //更新已有的账号信息
    UPDATEUSER_URL = '/admin/acl/user/update',
    //获取全部职位信息以及当前的角色信息
    ALLROLE_URL = '/admin/acl/user/toAssign/',
    // 根据角色分配职务
    SETROLE_URL = '/admin/acl/user/doAssignRole',
    //删除某一个账号
    DELETEUSERBYID_URL = '/admin/acl/user/remove/',
    // 删除多个账号
    DELETEUSERSBYID_URL = '/admin/acl/user/batchRemove',
}

//获取用户账号信息的方法
export const reqUserInfo = (page: number, limit: number, username: string) => request.get<any, UserResponseData>(API.GETALLUSER_UEL + `${page}/${limit}/?username=${username}`)
//添加或者新增用户的方法
export const reqAddOrUpdateUser = (data: User) => {
    // 有id则更新
    if (data.id) {
        return request.put<any, any>(API.UPDATEUSER_URL, data)
    } else {
        // 没有id则添加
        return request.post<any, any>(API.ADDUSER_URL, data)
    }
}
// 获取全部职位以及当前已经拥有的职位
export const reqGetRole = (id: number | string) => request.get<any, AllRoleResponseData>(API.ALLROLE_URL + id)
// 根据角色分配职位
export const reqSetUserRole = (data: SetRoleData) => request.post<any, any>(API.SETROLE_URL, data)
// 删除某一个账号的信息
export const reqRemoveUser = (userId: number) => request.delete<any, any>(API.DELETEUSERBYID_URL + userId)
//删除多个账号的信息
export const reqSelectUser = (idList: number[]) => request.delete(API.DELETEUSERSBYID_URL, { data: idList })